平台架构总览
一张图
┌─────────────────────────────────────────────────────────┐
│ 客户端(三端,任意框架) │
│ 网站(SSR/SPA) · 小程序(微信/抖音/支付宝) · App(iOS/Android/鸿蒙) │
└──────────────────────┬──────────────────────────────────┘
│ HTTPS + AK/SK(应用级) / Bearer(用户级)
▼
┌───────────────────┐
│ 统一网关 │ 验签 · scope 授权 · 限流 · 审计 · 事件总线
│ api.ocps.cc │
└───────┬───────────┘
┌─────────────────┼──────────────────┬─────────────────┐
▼ ▼ ▼ ▼
基础平台 业务平台 能力平台 开放平台
(app/auth/user/ (content/category/ (ai/media/ads/ (plugin/templates/
pay/points/ commerce/social/) stats/search/) games/)
notify/)
│ │ │ │
└─────────────────┴──────────────────┴─────────────────┘
每平台独立存储 · 租户按 appid 隔离 · 事件总线解耦
请求链路
- 客户端携带 AK/SK 签名头(应用级)或 Bearer 令牌(用户级)请求网关;
- 网关验签 → 校验该应用是否授权了目标 scope → 限流 → 审计;
- 网关把可信上下文(
X-Appid/X-User-Id/X-Scopes)注入请求头,转发到对应子平台; - 子平台处理业务,返回统一 JSON。
平台全景(25+ 子平台)
| 代码 | 平台 | 一句话定位 | ||
|---|---|---|---|---|
| gateway | 网关 | 统一入口:验签/授权/限流/审计 | ||
| app | 应用平台 | 应用生命周期、凭据、设置、模板安装 | ||
| auth | 认证平台 | 登录/令牌/OTP/RBAC | ||
| user | 用户平台 | 用户主数据/关系/偏好 | ||
| content | 内容平台 | 文章/内容类型/评论/版本/审核 | ||
| category | 分类平台 | 无限层级分类树 | ||
| media | 媒体平台 | 文件上传/OSS/资源管理 | ||
| ai | AI 平台 | 多租户大模型(文本/图像/语音/视频) | ||
| pay | 支付平台 | 订单/渠道/Webhook | ||
| points | 积分平台 | 积分/等级/兑换 | ||
| ads | 广告平台 | 广告位/投放/曝光点击报表 | ||
| notify | 通知平台 | 邮件/短信/站内信 | ||
| search | 搜索平台 | 全文检索 | ||
| i18n | 多语言平台 | 语言包/翻译 | ||
| themes | 主题平台 | 皮肤定义(CSS 变量级) | ||
| stats | 统计平台 | 访问埋点/分析 | ||
| social | 社交平台 | 动态/互动 | ||
| commerce | 电商平台 | 产品 SPU/SKU/订单 | ||
| realtime | 实时平台 | WebSocket 消息 | ||
| data | 数据平台 | 动态表(类 NoSQL) | ||
| form | 表单平台 | 动态表单/工单 | ||
| workflow | 工作流平台 | 流程触发/编排 | ||
| plugin | 插件平台 | 小工具插件市场与沙箱执行 | ||
| templates | 模板市集 | 模板注册/安装/激活/回滚 | ||
| games | 游戏集市 | 网页小游戏与排行榜 | ||
| imagesearch | 图片搜索 | 免费图源聚合 |
三条铁律(再次强调)
- 应用无数据库:租户应用只经 API 调平台,数据托管在 OCPS(appid 隔离);
- 能力即 API:一切子平台能力都是 HTTP API,三端共用,不绑定语言/框架;
- 万物皆模板/插件:渲染壳(模板)与能力(插件/子平台)分离,模板市集分发。
事件总线
平台间通过事件解耦,例如:支付平台 order.paid → 电商平台自动把订单置为已支付;内容平台 content.published → 统计平台累加。事件通过内部总线投递,应用侧可通过订阅接口消费自己关心的事件。